processor_pminfo[firstcpu]->perf.domain_info.coord_type) ||
(perf->domain_info.num_processors !=
processor_pminfo[firstcpu]->perf.domain_info.num_processors)) {
+
+ printk(KERN_WARNING "cpufreq fail to add CPU%d:"
+ "incorrect _PSD(%"PRIu64":%"PRIu64"), "
+ "expect(%"PRIu64"/%"PRIu64")\n",
+ cpu, perf->domain_info.coord_type,
+ perf->domain_info.num_processors,
+ processor_pminfo[firstcpu]->perf.domain_info.coord_type,
+ processor_pminfo[firstcpu]->perf.domain_info.num_processors
+ );
return -EINVAL;
}
}
ret = cpufreq_driver->init(policy);
if (ret) {
xfree(policy);
+ cpufreq_cpu_policy[cpu] = NULL;
return ret;
}
printk(KERN_EMERG"CPU %u initialization completed\n", cpu);
break;
case CPUFREQ_GOV_LIMITS:
+ if ( this_dbs_info->cur_policy == NULL )
+ {
+ printk(KERN_WARNING "CPU%d ondemand governor not started yet,"
+ "unable to GOV_LIMIT\n", cpu);
+ return -EINVAL;
+ }
if (policy->max < this_dbs_info->cur_policy->cur)
__cpufreq_driver_target(this_dbs_info->cur_policy,
policy->max, CPUFREQ_RELATION_H);